// Copyright 2011-2012, Vanya Davidenko.
// Используемая кодировка: UTF-8.

#ifndef LIBV_FILE_AFILE_H_
#define LIBV_FILE_AFILE_H_

#include <libv/file/basic_file.h>



namespace libv
{

class AFile : public BasicFile
{
  public:
    typedef BasicFile::OpenType OpenType;
    typedef BasicFile::LockType LockType;
    typedef BasicFile::PreallocType PreallocType;
    typedef BasicFile::Prealloc Prealloc;

    inline bool CancelAll() const;

  private:
    inline bool CancelAllImpl() const;
};

}  // libv



#include <libv/file/afile.hpp>
#if defined(_WIN32)
# include <libv/file/windows/afile_impl.hpp>
#elif defined(__linux__)
# include <libv/file/linux/afile_impl.hpp>
#else
# error "This header should be used in Windows or Linux 2.6+."
#endif

#endif  // LIBV_AFILE_H_
